package com.interheart.framecore.util;

import com.interheart.framecore.dto.ResultDto;
import com.interheart.framecore.enums.ResultDtoEnum;
import lombok.Builder;

/**
 * 功能描述 返回ResultDto
 * @author SHIKAI
 * @date 2018/12/5
 * @param  
 * @return 
 */
public class ResultDtoUtil {


    public static ResultDto create(int status, String msg, Object data){
        ResultDto resultDto = new ResultDto();
        resultDto.setStatus(status);
        resultDto.setMsg(msg);
        resultDto.setData(data);
        return resultDto;
    }

    /**
     * 功能描述 return success
     * @author SHIKAI
     * @date 2018/12/5
     * @return
     */
    public static ResultDto success(){
        return create(ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getValue(), ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getDesc(), ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getData());
    }

    /**
     * 功能描述 return success
     * @author SHIKAI
     * @date 2018/12/5
     * @param status 状态码
     * @return
     */
    public static ResultDto success(int status){
        return create(status, ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getDesc(),  ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getData());
    }

    /**
     * 功能描述 return success
     * @author SHIKAI
     * @date 2018/12/5
     * @param msg 消息
     * @return
     */
    public static ResultDto success(String msg){
        return create(ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getValue(), msg, ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getData());
    }

    /**
     * 功能描述 return success
     * @author SHIKAI
     * @date 2018/12/5
     * @param data 返回对象
     * @return
     */
    public static ResultDto success(Object data){
        return create(ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getValue(), ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getDesc(), data);
    }

    /**
     * 功能描述 return success
     * @author SHIKAI
     * @date 2018/12/5
     * @param msg 消息
     * @return
     */
    public static ResultDto success(int status, String msg){
        return create(status, msg, ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getData());
    }

    /**
     * 功能描述 return success
     * @author SHIKAI
     * @date 2018/12/5
     * @param status 状态码
     * @param data 返回对象
     * @return
     */
    public static ResultDto success(int status, Object data){
        return create(status, ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getDesc(), data);
    }

    /**
     * 功能描述 return success
     * @author SHIKAI
     * @date 2018/12/5
     * @param msg 消息
     * @param data 返回对象
     * @return
     */
    public static ResultDto success(String msg, Object data){
        return create(ResultDtoEnum.AJAX_RETURN_STATUS.SUCCESS.getValue(), msg, data);
    }

    /**
     * 功能描述 return success
     * @author SHIKAI
     * @date 2018/12/5
     * @param status 状态码
     * @param msg 消息
     * @param data 返回对象
     * @return
     */
    public static ResultDto success(int status, String msg, Object data){
        return create(status, msg, data);
    }



    /**
     * 功能描述 return fail
     * @author SHIKAI
     * @date 2018/12/5
     * @return
     */
    public static ResultDto fail(){
        return create(ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getValue(), ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getDesc(), ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getData());
    }
    /**
     * 功能描述 return fail
     * @author SHIKAI
     * @date 2018/12/5
     * @param status 状态码
     * @return
     */
    public static ResultDto fail(Integer status){
        return create(status, ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getDesc(), ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getData());
    }

    /**
     * 功能描述 return fail
     * @author SHIKAI
     * @date 2018/12/5
     * @param msg 状态码
     * @return
     */
    public static ResultDto fail(String msg){
        return create(ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getValue(), msg, ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getData());
    }
    /**
     * 功能描述 return fail
     * @author SHIKAI
     * @date 2018/12/5
     * @param data 返回对象
     * @return
     */
    public static ResultDto fail(Object data){
        return create(ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getValue(), ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getDesc(), data);
    }

    /**
     * 功能描述 return fail
     * @author SHIKAI
     * @date 2018/12/5
     * @return
     */
    public static ResultDto fail(int status, String msg, Object data){
        return create(status, msg, data);
    }

    /**
     * 功能描述 return fail
     * @author SHIKAI
     * @date 2018/12/5
     * @param status 状态码
     * @param data 返回对象
     * @return
     */
    public static ResultDto fail(int status, Object data){
        return create(status, ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getDesc(), data);
    }

    /**
     * 功能描述 return fail
     * @author SHIKAI
     * @date 2018/12/5
     * @param msg 消息
     * @return
     */
    public static ResultDto fail(int status, String msg){
        return create(status, msg,  ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getData());
    }
    /**
     * 功能描述 return fail
     * @author SHIKAI
     * @date 2018/12/5
     * @param msg 消息
     * @param data 返回对象
     * @return
     */
    public static ResultDto fail(String msg, Object data){
        return create(ResultDtoEnum.AJAX_RETURN_STATUS.FAIL.getValue(), msg, data);
    }



}
